(function(root, factory) {
    if (typeof define === "function" && define.amd) {
        // AMD. Register as an anonymous module.
        define(["exports", "echarts"], factory);
    } else if (typeof exports === "object" && typeof exports.nodeName !== "string") {
        // CommonJS
        factory(exports, require("echarts"));
    } else {
        // Browser globals
        factory({}, root.echarts);
    }
}(this,
    function(exports, echarts) {
        var log = function(msg) {
            if (typeof console !== "undefined") {
                console && console.error && console.error(msg);
            }
        };
        if (!echarts) {
            log("ECharts is not Loaded");
            return;
        }

        var colorPalette = [
            "#C1232B", "#27727B", "#FCCE10", "#E87C25", "#B5C334",
            "#FE8463", "#9BCA63", "#FAD860", "#F3A43B", "#60C0DD",
            "#D7504B", "#C6E579", "#F4E001", "#F0805A", "#26C0C0"
        ];

        var theme = {
            color: colorPalette,

            title: {
                textStyle: {
                    fontWeight: "normal",
                    color: "#27727B"
                }
            },

            visualMap: {
                color: ["#C1232B", "#FCCE10"]
            },

            toolbox: {
                iconStyle: {
                    normal: {
                        borderColor: colorPalette[0]
                    }
                }
            },

            tooltip: {
                backgroundColor: "rgba(50,50,50,0.5)",
                axisPointer: {
                    type: "line",
                    lineStyle: {
                        color: "#27727B",
                        type: "dashed"
                    },
                    crossStyle: {
                        color: "#27727B"
                    },
                    shadowStyle: {
                        color: "rgba(200,200,200,0.3)"
                    }
                }
            },

            dataZoom: {
                dataBackgroundColor: "rgba(181,195,52,0.3)",
                fillerColor: "rgba(181,195,52,0.2)",
                handleColor: "#27727B"
            },

            categoryAxis: {
                axisLine: {
                    lineStyle: {
                        color: "#27727B"
                    }
                },
                splitLine: {
                    show: false
                }
            },

            valueAxis: {
                axisLine: {
                    show: false
                },
                splitArea: {
                    show: false
                },
                splitLine: {
                    lineStyle: {
                        color: ["#ccc"],
                        type: "dashed"
                    }
                }
            },

            timeline: {
                lineStyle: {
                    color: "#27727B"
                },
                controlStyle: {
                    normal: {
                        color: "#27727B",
                        borderColor: "#27727B"
                    }
                },
                symbol: "emptyCircle",
                symbolSize: 3
            },

            line: {
                itemStyle: {
                    normal: {
                        borderWidth: 2,
                        borderColor: "#fff",
                        lineStyle: {
                            width: 3
                        }
                    },
                    emphasis: {
                        borderWidth: 0
                    }
                },
                symbol: "circle",
                symbolSize: 3.5
            },

            candlestick: {
                itemStyle: {
                    normal: {
                        color: "#C1232B",
                        color0: "#B5C334",
                        lineStyle: {
                            width: 1,
                            color: "#C1232B",
                            color0: "#B5C334"
                        }
                    }
                }
            },

            graph: {
                color: colorPalette
            },

            map: {
                label: {
                    normal: {
                        textStyle: {
                            color: "#C1232B"
                        }
                    },
                    emphasis: {
                        textStyle: {
                            color: "rgb(100,0,0)"
                        }
                    }
                },
                itemStyle: {
                    normal: {
                        areaColor: "#ddd",
                        borderColor: "#eee"
                    },
                    emphasis: {
                        areaColor: "#fe994e"
                    }
                }
            },

            gauge: {
                axisLine: {
                    lineStyle: {
                        color: [[0.2, "#B5C334"], [0.8, "#27727B"], [1, "#C1232B"]]
                    }
                },
                axisTick: {
                    splitNumber: 2,
                    length: 5,
                    lineStyle: {
                        color: "#fff"
                    }
                },
                axisLabel: {
                    textStyle: {
                        color: "#fff"
                    }
                },
                splitLine: {
                    length: "5%",
                    lineStyle: {
                        color: "#fff"
                    }
                },
                title: {
                    offsetCenter: [0, -20]
                }
            }
        };

        echarts.registerTheme("infographic", theme);
    }));